package com.ay.smartpark.sdk.common.interceptors;


import com.qycloud.SDK.server.client.DecodeAndEncodeClient;
import com.qycloud.SDK.server.client.UserClient;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Component
public class LoginInterceptor implements HandlerInterceptor {
    @Resource
    private UserClient userClient;
    @Resource
    private DecodeAndEncodeClient decodeAndEncodeClient;

    @Value("${env.name}")
    private String envname;

   /* @Resource
    private UserCenterService userCenterService;
    @Resource
    private IUserInfoService userInfoService;*/

    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {

//
//        String sessionId = CookieUtil.getValue(httpServletRequest, CommonConstant.PHPSESSID);
///*        if (envname.equals(EnvNameConstant.ENVNAME_TESTGBASE)) {
//            Map<String, Object> mapParame = new HashMap<>();
//            mapParame.put("user_id", "admin_sys");
//            Map<String, Object> resultMap = userInfoService.getUserInfoById(mapParame);
//            OnlineUserInfo onlineUserInfo_new = BeanUtils.mapToBean(resultMap, new OnlineUserInfo());
//           // OnlineUserInfo onlineUserInfo_new = new OnlineUserInfo();
//            onlineUserInfo_new.setUserId("beitangjiedao");
//            onlineUserInfo_new.setRealName("北塘街道");
//            List<Map<String, Object>> listMap = userInfoService.getDeptByUserId(mapParame);
//            String deptName = "";
//            if (CollectionUtils.isNotEmpty(listMap)) {
//                for (Map<String, Object> map : listMap) {
//                    deptName = map.get("name").toString();
//                    break;
//                }
//            }
//            onlineUserInfo_new.setDeptName("北塘街道");
//            onlineUserInfo_new.setUserLevel("街道");
//            OnlineUserInfoUtil.setUserInfo(onlineUserInfo_new);
//            return true;
//        }*/
//        if (StringUtils.isNotBlank(sessionId)) {
//            //用于和平台session保持同步
//            Map<String, Object> data = userClient.getSessionById(sessionId);
//            if (data != null) {
//                OnlineUserInfo onlineUserInfo = BeanUtils.mapToBean(data, new OnlineUserInfo());
//                Map<String, Object> mapParame = new HashMap<>();
//                mapParame.put("user_id", onlineUserInfo.getUserId());
//                Map<String, Object> resultMap = userInfoService.getUserInfoById(mapParame);
//                OnlineUserInfo onlineUserInfo_new = BeanUtils.mapToBean(resultMap, new OnlineUserInfo());
//                if(StringUtils.isNotBlank(onlineUserInfo_new.getSuperviseType())) {
//                    onlineUserInfo.setSuperviseType(onlineUserInfo_new.getSuperviseType());
//                }
//                if (StringUtils.isNotBlank(onlineUserInfo_new.getSuperviseArea())) {
//                    onlineUserInfo.setSuperviseArea(onlineUserInfo_new.getSuperviseArea());
//                }
//                onlineUserInfo.setUserLevel(onlineUserInfo_new.getUserLevel());
//                if (StringUtils.isNotBlank(onlineUserInfo_new.getSuperviseStreet())) {
//                    onlineUserInfo.setSuperviseStreet(onlineUserInfo_new.getSuperviseStreet());
//                }
//                onlineUserInfo.setSessionId(sessionId);
//                //部门名称换掉了
//
//
//                if (null != resultMap.get("dept") && StringUtils.isNotBlank(resultMap.get("dept").toString())) {
//                    onlineUserInfo.setDeptName(resultMap.get("dept").toString());
//                } else{
//                    List<Map<String, Object>> listMap = userInfoService.getDeptByUserId(mapParame);
//                    String deptName = "";
//                    if (CollectionUtils.isNotEmpty(listMap)) {
//                        for (Map<String, Object> map : listMap) {
//                            deptName = map.get("name").toString();
//                            break;
//                        }
//                    }
//                    onlineUserInfo.setDeptName(deptName);
//                }
//                OnlineUserInfoUtil.setUserInfo(onlineUserInfo);
//                return true;
//            }
//        }
//        httpServletResponse.setHeader("content-type", "text/json;charset=UTF-8");
//        httpServletResponse.getWriter().println("您尚未登录");
//        return false;
        return true;
    }
}
